﻿using System.Collections.Generic;
using System.Data;
using NPMonitor.DataModel;
using NPMonitor.DataModel.Report;
using System;

namespace NPMonitor.Interfaces
{
    public interface IReportStore
    {
        List<ReportData> GetDailyReportDataByCondition(string scenarioNo, string beginTime, string endTime, params string[] locations);

        List<Scenario> GetScenarioNoByJobId(int jobId);

        List<ReportData> GetHourlyReportDataByCondition(string scenarioNo, string beginTime, string endTime, params string[] locations);

        List<ReportData> GetWeeklyMonthlyReportDataByCondition(string scenarioNo, string beginTime, string endTime, params string[] locations);

        List<ReportData> GetYearlyReportDataByCondition(string scenarioNo, string beginTime, string endTime, params string[] locations);

        List<ReportData> GetCumulativeTimeAvgReportData(int locationId, string beginTime, string endTime, params string[] scenarioNoList);

        List<HttpActionData> GetHttpActonList(string scenarioNo, DateTime beginTime, TimeSpan duration);

        ReportRefrenceData GetBaseLine(string scenarioNo);

        int GetScenarioBaseTime(string scenarioNo);

        List<HttpActionRequestsData> GetHttpActionRequestsByActionId(long actionId);

        Scenario GetScenarioByActionId(long actionId);
    }
}
